#calculate the Shannon-Wiener diversity (with diversity function from vegan package) for all species
df.sample_data$diversity <- apply(df.sample_data[df.species_all$colname], MARGIN=1, diversity)
#calculate the Shannon-Wiener diversity (with diversity function from vegan package) for nursery species
df.sample_data$nursery_diversity <- apply(df.sample_data[nursery_species$colname], MARGIN=1, diversity)
#calculate number of species for all species by summing the presence/absence columns for those species
df.sample_data$num_species <- apply(df.sample_data[c(df.species_all$colname_pres)],MARGIN=1,sum)
#calculate number of species for nursery species by summing the presence/absence columns for those species
df.sample_data$num_nursery_species <- apply(df.sample_data[c(nursery_species$colname_pres)],MARGIN=1,sum)
#calculate number of fish
df.sample_data$num_fish <- apply(df.sample_data[c(df.species_all$colname)],MARGIN=1,sum)
#calculate number of nursery fish
df.sample_data$num_nursery_fish <- apply(df.sample_data[c(nursery_species$colname)],MARGIN=1,sum)
df.sample_data <- merge(x=df.sample_data, y=df.sites, by.x="location", by.y="name", all.x=TRUE)
nursery_columns <- c(c("location","depth","transect","date","nursery_diversity","num_nursery_species","num_nursery_fish"),nursery_species$colname, nursery_species$colname_pres) #columns for nursery species analysis
df.nursery_sample_data <- df.sample_data[nursery_columns] # subset of the data with only the nursery species
Independent variables: size_seagrass, distance_seagrass, size_mangroves, distance_mangroves, mpa, depth, north
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$north
}
else{
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028389"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | n$distance_seagrass | 0.0475774 |
| 2 | abudefduf_sexfasciatus | n$size_mangroves | 0.0485260 |
| 21 | abudefduf_vaigiensis | n$distance_seagrass | 0.0007579 |
| 3 | abudefduf_vaigiensis | n$size_seagrass | 0.0024052 |
| 4 | abudefduf_vaigiensis | n$size_mangroves | 0.0007376 |
| 5 | abudefduf_vaigiensis | n$distance_mangroves | 0.0012850 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0011287 |
| 7 | abudefduf_vaigiensis | n$northsouth | 0.0008274 |
| 8 | abudefduf_vaigiensis | n\(distance_seagrass:n\)size_seagrass | 0.0011290 |
| 9 | abudefduf_vaigiensis | n\(distance_seagrass:n\)depth10m | 0.0000186 |
| 10 | abudefduf_vaigiensis | n\(size_seagrass:n\)depth10m | 0.0016766 |
| 12 | cheilio_inermis | n$depth10m | 0.0057399 |
| 22 | cheilodipterus_quinquelineatus | n$distance_seagrass | 0.0002778 |
| 31 | cheilodipterus_quinquelineatus | n$size_seagrass | 0.0000000 |
| 41 | cheilodipterus_quinquelineatus | n$size_mangroves | 0.0003234 |
| 51 | cheilodipterus_quinquelineatus | n$distance_mangroves | 0.0000383 |
| 61 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0020950 |
| 71 | cheilodipterus_quinquelineatus | n$northsouth | 0.0000726 |
| 81 | cheilodipterus_quinquelineatus | n\(size_seagrass:n\)depth10m | 0.0000000 |
| 91 | cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)size_seagrass:n$depth10m | 0.0009730 |
| 211 | mulloidichthys_flavolineatus | n$distance_mangroves | 0.0001437 |
| 221 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0021100 |
| 23 | parupeneus_barberinoides | n$distance_seagrass | 0.0002228 |
| 24 | scolopsis_ciliata | n$depth10m | 0.0078945 |
| 25 | scolopsis_ciliata | n\(distance_seagrass:n\)depth10m | 0.0001718 |
log(size_seagrass)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$north
}
else{
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC fistularia_commersonii : 203.808555954373"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 2 | abudefduf_sexfasciatus | n$size_mangroves | 0.0232130 |
| 3 | abudefduf_sexfasciatus | n$distance_mangroves | 0.0266834 |
| 4 | abudefduf_sexfasciatus | n$mpanon-mpa | 0.0085069 |
| 5 | abudefduf_sexfasciatus | n$northsouth | 0.0343237 |
| 21 | abudefduf_vaigiensis | n$distance_seagrass | 0.0000299 |
| 31 | abudefduf_vaigiensis | n$size_mangroves | 0.0010257 |
| 41 | abudefduf_vaigiensis | n$distance_mangroves | 0.0019656 |
| 51 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0011233 |
| 6 | abudefduf_vaigiensis | n$depth10m | 0.0002026 |
| 7 | abudefduf_vaigiensis | n$northsouth | 0.0010132 |
| 8 | abudefduf_vaigiensis | n\(distance_seagrass:log(n\)size_seagrass) | 0.0004283 |
| 9 | abudefduf_vaigiensis | n\(distance_seagrass:n\)depth10m | 0.0000013 |
| 10 | abudefduf_vaigiensis | log(n\(size_seagrass):n\)depth10m | 0.0016766 |
| 14 | cheilio_inermis | n$depth10m | 0.0057399 |
| 22 | cheilodipterus_quinquelineatus | log(n$size_seagrass) | 0.0000000 |
| 32 | cheilodipterus_quinquelineatus | n$size_mangroves | 0.0000002 |
| 42 | cheilodipterus_quinquelineatus | n$distance_mangroves | 0.0000000 |
| 52 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0000020 |
| 61 | cheilodipterus_quinquelineatus | n$northsouth | 0.0000002 |
| 71 | cheilodipterus_quinquelineatus | n\(distance_seagrass:log(n\)size_seagrass) | 0.0076134 |
| 81 | cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)depth10m | 0.0067477 |
| 91 | cheilodipterus_quinquelineatus | log(n\(size_seagrass):n\)depth10m | 0.0000000 |
| 101 | cheilodipterus_quinquelineatus | n\(distance_mangroves:n\)depth10m | 0.0008222 |
| 11 | cheilodipterus_quinquelineatus | n\(distance_seagrass:log(n\)size_seagrass):n$depth10m | 0.0000338 |
| 25 | fistularia_commersonii | log(n$size_seagrass) | 0.0416231 |
| 26 | fistularia_commersonii | n$distance_mangroves | 0.0152579 |
| 27 | fistularia_commersonii | n$mpanon-mpa | 0.0109622 |
| 28 | fistularia_commersonii | n\(distance_seagrass:n\)size_mangroves | 0.0378217 |
| 23 | halichoeres_hortulanus | n$distance_seagrass | 0.0038113 |
| 33 | halichoeres_hortulanus | log(n$size_seagrass) | 0.0138281 |
| 43 | halichoeres_hortulanus | n$size_mangroves | 0.0099475 |
| 53 | halichoeres_hortulanus | n$distance_mangroves | 0.0103440 |
| 62 | halichoeres_hortulanus | n$mpanon-mpa | 0.0317664 |
| 72 | halichoeres_hortulanus | n$northsouth | 0.0109432 |
| 82 | halichoeres_hortulanus | n\(distance_seagrass:n\)size_mangroves | 0.0078294 |
| 36 | mulloidichthys_flavolineatus | n$distance_seagrass | 0.0170298 |
| 37 | mulloidichthys_flavolineatus | n$distance_mangroves | 0.0023050 |
| 38 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0002856 |
| 39 | parupeneus_barberinoides | n$distance_seagrass | 0.0001312 |
| 40 | scolopsis_ciliata | n$depth10m | 0.0207127 |
| 411 | scolopsis_ciliata | n\(distance_seagrass:n\)depth10m | 0.0084546 |
log(distance_seagrass)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$north
}
else{
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459546"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033752"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus : 633.195660521307"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma : 37.6524153062094"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata : 843.933588478539"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | n$size_seagrass | 0.0411274 |
| 2 | abudefduf_vaigiensis | log(n$distance_seagrass) | 0.0002140 |
| 3 | abudefduf_vaigiensis | n$size_seagrass | 0.0014448 |
| 4 | abudefduf_vaigiensis | n$size_mangroves | 0.0001557 |
| 5 | abudefduf_vaigiensis | n$distance_mangroves | 0.0021998 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0013878 |
| 7 | abudefduf_vaigiensis | n$depth10m | 0.0000014 |
| 8 | abudefduf_vaigiensis | n$northsouth | 0.0023314 |
| 9 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)size_seagrass | 0.0012287 |
| 10 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)depth10m | 0.0000186 |
| 11 | abudefduf_vaigiensis | n\(size_seagrass:n\)depth10m | 0.0016766 |
| 12 | cheilio_inermis | n$depth10m | 0.0057399 |
| 13 | cheilodipterus_quinquelineatus | log(n$distance_seagrass) | 0.0008500 |
| 14 | cheilodipterus_quinquelineatus | n$size_seagrass | 0.0000151 |
| 15 | cheilodipterus_quinquelineatus | n$size_mangroves | 0.0017885 |
| 16 | cheilodipterus_quinquelineatus | n$distance_mangroves | 0.0003449 |
| 17 | cheilodipterus_quinquelineatus | n$northsouth | 0.0030186 |
| 18 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)size_seagrass | 0.0042162 |
| 19 | cheilodipterus_quinquelineatus | n\(size_seagrass:n\)depth10m | 0.0034369 |
| 20 | cheilodipterus_quinquelineatus | n\(size_mangroves:n\)depth10m | 0.0137646 |
| 21 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)size_seagrass:n$depth10m | 0.0097216 |
| 22 | halichoeres_hortulanus | log(n$distance_seagrass) | 0.0319946 |
| 31 | halichoeres_hortulanus | n$size_mangroves | 0.0079199 |
| 41 | halichoeres_hortulanus | n$mpanon-mpa | 0.0009165 |
| 51 | halichoeres_hortulanus | n$northsouth | 0.0003591 |
| 61 | halichoeres_hortulanus | log(n\(distance_seagrass):n\)size_seagrass | 0.0322807 |
| 71 | halichoeres_hortulanus | log(n\(distance_seagrass):n\)size_mangroves | 0.0083371 |
| 28 | mulloidichthys_flavolineatus | log(n$distance_seagrass) | 0.0245036 |
| 29 | mulloidichthys_flavolineatus | n$distance_mangroves | 0.0074226 |
| 30 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0150556 |
| 23 | parupeneus_barberinus | log(n$distance_seagrass) | 0.0206391 |
| 32 | parupeneus_barberinus | n$size_seagrass | 0.0446283 |
| 42 | parupeneus_barberinus | n$distance_mangroves | 0.0189358 |
| 52 | parupeneus_barberinus | n$northsouth | 0.0471892 |
| 24 | lutjanus_fulviflamma | n$size_seagrass | 0.0487377 |
| 36 | parupeneus_barberinoides | log(n$distance_seagrass) | 0.0001737 |
| 37 | scolopsis_bilineata | n\(distance_mangroves:n\)depth10m | 0.0291154 |
| 38 | scolopsis_ciliata | n$depth10m | 0.0001206 |
| 39 | scolopsis_ciliata | log(n\(distance_seagrass):n\)depth10m | 0.0001718 |
log(size_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$north
}
else{
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "AIC halichoeres_hortulanus : 623.511082015147"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 2 | abudefduf_sexfasciatus | n$distance_seagrass | 0.0475204 |
| 3 | abudefduf_sexfasciatus | log(n$size_mangroves) | 0.0485260 |
| 21 | abudefduf_vaigiensis | n$distance_seagrass | 0.0007519 |
| 31 | abudefduf_vaigiensis | log(n$size_mangroves) | 0.0007376 |
| 4 | abudefduf_vaigiensis | n$distance_mangroves | 0.0010258 |
| 5 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0009591 |
| 6 | abudefduf_vaigiensis | n$northsouth | 0.0007727 |
| 7 | abudefduf_vaigiensis | n\(distance_seagrass:n\)size_seagrass | 0.0009839 |
| 8 | abudefduf_vaigiensis | n\(distance_seagrass:n\)depth10m | 0.0000186 |
| 9 | abudefduf_vaigiensis | n\(size_seagrass:n\)depth10m | 0.0016766 |
| 11 | cheilio_inermis | n$depth10m | 0.0057399 |
| 22 | cheilodipterus_quinquelineatus | n$distance_seagrass | 0.0002754 |
| 32 | cheilodipterus_quinquelineatus | n$size_seagrass | 0.0152336 |
| 41 | cheilodipterus_quinquelineatus | log(n$size_mangroves) | 0.0003234 |
| 51 | cheilodipterus_quinquelineatus | n$distance_mangroves | 0.0000564 |
| 61 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0027557 |
| 71 | cheilodipterus_quinquelineatus | n$northsouth | 0.0001337 |
| 81 | cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)size_seagrass | 0.0468577 |
| 91 | cheilodipterus_quinquelineatus | n\(size_seagrass:n\)depth10m | 0.0000000 |
| 10 | cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)size_seagrass:n$depth10m | 0.0015202 |
| 23 | halichoeres_hortulanus | n$distance_seagrass | 0.0015355 |
| 33 | halichoeres_hortulanus | n$size_seagrass | 0.0020170 |
| 42 | halichoeres_hortulanus | log(n$size_mangroves) | 0.0016483 |
| 52 | halichoeres_hortulanus | n$distance_mangroves | 0.0020266 |
| 62 | halichoeres_hortulanus | n$mpanon-mpa | 0.0022771 |
| 72 | halichoeres_hortulanus | n$northsouth | 0.0017666 |
| 82 | halichoeres_hortulanus | n\(distance_seagrass:n\)size_seagrass | 0.0016340 |
| 92 | halichoeres_hortulanus | n\(distance_seagrass:log(n\)size_mangroves) | 0.0015467 |
| 29 | mulloidichthys_flavolineatus | n$distance_mangroves | 0.0001436 |
| 30 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0025719 |
| 311 | parupeneus_barberinoides | n$distance_seagrass | 0.0010270 |
| 321 | scolopsis_ciliata | n$depth10m | 0.0078945 |
| 331 | scolopsis_ciliata | n\(distance_seagrass:n\)depth10m | 0.0001718 |
log(distance_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$north
}
else{
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459546"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC lutjanus_gibbus : 54.9453245875361"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus : 633.195660521307"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata : 843.933588478539"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue |
|---|---|---|
| abudefduf_sexfasciatus | n\(distance_seagrass:n\)size_seagrass | 0.0072912 |
| abudefduf_vaigiensis | n$distance_seagrass | 0.0004432 |
| abudefduf_vaigiensis | n$size_seagrass | 0.0010183 |
| abudefduf_vaigiensis | log(n$distance_mangroves) | 0.0012850 |
| abudefduf_vaigiensis | n$size_mangroves | 0.0004442 |
| abudefduf_vaigiensis | n$mpanon-mpa | 0.0010418 |
| abudefduf_vaigiensis | n$northsouth | 0.0006305 |
| abudefduf_vaigiensis | n\(distance_seagrass:n\)size_seagrass | 0.0008741 |
| abudefduf_vaigiensis | n\(distance_seagrass:n\)depth10m | 0.0000186 |
| abudefduf_vaigiensis | n\(size_seagrass:n\)depth10m | 0.0016766 |
| cheilio_inermis | n$depth10m | 0.0057399 |
| cheilodipterus_quinquelineatus | n$distance_seagrass | 0.0000560 |
| cheilodipterus_quinquelineatus | n$size_seagrass | 0.0000000 |
| cheilodipterus_quinquelineatus | log(n$distance_mangroves) | 0.0000383 |
| cheilodipterus_quinquelineatus | n$size_mangroves | 0.0000797 |
| cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0044880 |
| cheilodipterus_quinquelineatus | n$depth10m | 0.0471287 |
| cheilodipterus_quinquelineatus | n$northsouth | 0.0000206 |
| cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)size_seagrass | 0.0000000 |
| cheilodipterus_quinquelineatus | n\(mpanon-mpa:n\)depth10m | 0.0254092 |
| cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)size_seagrass:n$depth10m | 0.0006448 |
| halichoeres_hortulanus | n$distance_seagrass | 0.0033563 |
| halichoeres_hortulanus | log(n$distance_mangroves) | 0.0188338 |
| halichoeres_hortulanus | n$mpanon-mpa | 0.0015347 |
| halichoeres_hortulanus | n\(distance_seagrass:log(n\)distance_mangroves) | 0.0030464 |
| lutjanus_gibbus | n$size_seagrass | 0.0001858 |
| mulloidichthys_flavolineatus | n$distance_seagrass | 0.0001114 |
| mulloidichthys_flavolineatus | n$size_seagrass | 0.0003739 |
| mulloidichthys_flavolineatus | log(n$distance_mangroves) | 0.0001437 |
| mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0002624 |
| parupeneus_barberinus | n$size_seagrass | 0.0289434 |
| parupeneus_barberinus | n$size_mangroves | 0.0311172 |
| parupeneus_barberinus | n$northsouth | 0.0474017 |
| parupeneus_barberinus | n\(distance_seagrass:n\)size_seagrass | 0.0165494 |
| scolopsis_bilineata | n\(size_seagrass:n\)depth10m | 0.0134165 |
| scolopsis_ciliata | n$depth10m | 0.0078945 |
| scolopsis_ciliata | n\(distance_seagrass:n\)depth10m | 0.0001718 |
log(size_seagrass) & log(distance_seagrass)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$north
}
else{
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028389"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus : 633.195660521307"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma : 37.6524153062094"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 2 | abudefduf_sexfasciatus | log(n$size_seagrass) | 0.0314838 |
| 3 | abudefduf_sexfasciatus | n$size_mangroves | 0.0221253 |
| 4 | abudefduf_sexfasciatus | n$distance_mangroves | 0.0360156 |
| 5 | abudefduf_sexfasciatus | n$mpanon-mpa | 0.0293558 |
| 6 | abudefduf_sexfasciatus | log(n\(distance_seagrass):log(n\)size_seagrass) | 0.0342116 |
| 21 | abudefduf_vaigiensis | log(n$distance_seagrass) | 0.0039717 |
| 31 | abudefduf_vaigiensis | log(n$size_seagrass) | 0.0014468 |
| 41 | abudefduf_vaigiensis | n$size_mangroves | 0.0009734 |
| 51 | abudefduf_vaigiensis | n$distance_mangroves | 0.0010066 |
| 61 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0010933 |
| 7 | abudefduf_vaigiensis | n$depth10m | 0.0000008 |
| 8 | abudefduf_vaigiensis | n$northsouth | 0.0010383 |
| 9 | abudefduf_vaigiensis | log(n\(distance_seagrass):log(n\)size_seagrass) | 0.0011791 |
| 10 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)depth10m | 0.0000013 |
| 11 | abudefduf_vaigiensis | log(n\(size_seagrass):n\)depth10m | 0.0016766 |
| 16 | cheilio_inermis | n$depth10m | 0.0057399 |
| 17 | cheilodipterus_quinquelineatus | log(n$distance_seagrass) | 0.0218050 |
| 18 | cheilodipterus_quinquelineatus | log(n$size_seagrass) | 0.0000000 |
| 19 | cheilodipterus_quinquelineatus | n$size_mangroves | 0.0000013 |
| 20 | cheilodipterus_quinquelineatus | n$distance_mangroves | 0.0000000 |
| 211 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0000136 |
| 22 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):log(n\)size_seagrass) | 0.0000017 |
| 23 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)depth10m | 0.0134930 |
| 24 | cheilodipterus_quinquelineatus | log(n\(size_seagrass):n\)depth10m | 0.0036135 |
| 25 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):log(n\)size_seagrass):n$depth10m | 0.0028510 |
| 26 | halichoeres_hortulanus | log(n$distance_seagrass) | 0.0082914 |
| 32 | halichoeres_hortulanus | log(n$size_seagrass) | 0.0378139 |
| 42 | halichoeres_hortulanus | n$size_mangroves | 0.0042414 |
| 52 | halichoeres_hortulanus | n$distance_mangroves | 0.0161226 |
| 62 | halichoeres_hortulanus | n$mpanon-mpa | 0.0015648 |
| 71 | halichoeres_hortulanus | n$northsouth | 0.0021504 |
| 81 | halichoeres_hortulanus | log(n\(distance_seagrass):n\)size_mangroves | 0.0044979 |
| 27 | mulloidichthys_flavolineatus | log(n$distance_seagrass) | 0.0170723 |
| 33 | mulloidichthys_flavolineatus | n$size_mangroves | 0.0051032 |
| 43 | mulloidichthys_flavolineatus | n$distance_mangroves | 0.0146713 |
| 53 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0134271 |
| 63 | mulloidichthys_flavolineatus | n$northsouth | 0.0049402 |
| 38 | parupeneus_barberinus | log(n$size_seagrass) | 0.0269771 |
| 39 | parupeneus_barberinus | n$distance_mangroves | 0.0481660 |
| 40 | parupeneus_barberinus | log(n\(distance_seagrass):log(n\)size_seagrass) | 0.0130958 |
| 411 | lutjanus_fulviflamma | log(n$size_seagrass) | 0.0487377 |
| 421 | parupeneus_barberinoides | log(n$distance_seagrass) | 0.0001365 |
| 431 | scolopsis_ciliata | n$depth10m | 0.0005535 |
| 44 | scolopsis_ciliata | log(n\(distance_seagrass):n\)depth10m | 0.0084546 |
log(size_seagrass) & log(size_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$north
}
else{
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC fistularia_commersonii : 203.808555954373"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 2 | abudefduf_sexfasciatus | log(n$size_mangroves) | 0.0232130 |
| 3 | abudefduf_sexfasciatus | n$mpanon-mpa | 0.0082701 |
| 4 | abudefduf_sexfasciatus | n$northsouth | 0.0306714 |
| 21 | abudefduf_vaigiensis | n$distance_seagrass | 0.0000256 |
| 31 | abudefduf_vaigiensis | log(n$size_seagrass) | 0.0363995 |
| 41 | abudefduf_vaigiensis | log(n$size_mangroves) | 0.0010257 |
| 5 | abudefduf_vaigiensis | n$distance_mangroves | 0.0020795 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0012202 |
| 7 | abudefduf_vaigiensis | n$depth10m | 0.0002026 |
| 8 | abudefduf_vaigiensis | n$northsouth | 0.0010107 |
| 9 | abudefduf_vaigiensis | n\(distance_seagrass:log(n\)size_seagrass) | 0.0001835 |
| 10 | abudefduf_vaigiensis | n\(distance_seagrass:n\)depth10m | 0.0000013 |
| 11 | abudefduf_vaigiensis | log(n\(size_seagrass):n\)depth10m | 0.0016766 |
| 14 | cheilio_inermis | n$depth10m | 0.0057399 |
| 22 | cheilodipterus_quinquelineatus | log(n$size_mangroves) | 0.0000002 |
| 32 | cheilodipterus_quinquelineatus | n$distance_mangroves | 0.0000000 |
| 42 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0000011 |
| 51 | cheilodipterus_quinquelineatus | n$northsouth | 0.0000002 |
| 61 | cheilodipterus_quinquelineatus | n\(distance_seagrass:log(n\)size_seagrass) | 0.0260604 |
| 71 | cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)depth10m | 0.0025727 |
| 81 | cheilodipterus_quinquelineatus | log(n\(size_seagrass):n\)depth10m | 0.0000002 |
| 91 | cheilodipterus_quinquelineatus | n\(distance_mangroves:n\)depth10m | 0.0001081 |
| 101 | cheilodipterus_quinquelineatus | n\(distance_seagrass:log(n\)size_seagrass):n$depth10m | 0.0000341 |
| 24 | fistularia_commersonii | n$distance_seagrass | 0.0328563 |
| 25 | fistularia_commersonii | log(n$size_seagrass) | 0.0406923 |
| 26 | fistularia_commersonii | n$distance_mangroves | 0.0146087 |
| 27 | fistularia_commersonii | n$mpanon-mpa | 0.0107055 |
| 28 | fistularia_commersonii | n$northsouth | 0.0486197 |
| 29 | fistularia_commersonii | n\(distance_seagrass:log(n\)size_mangroves) | 0.0259648 |
| 23 | halichoeres_hortulanus | n$distance_seagrass | 0.0059966 |
| 33 | halichoeres_hortulanus | log(n$size_seagrass) | 0.0129899 |
| 43 | halichoeres_hortulanus | log(n$size_mangroves) | 0.0089956 |
| 52 | halichoeres_hortulanus | n$distance_mangroves | 0.0099240 |
| 62 | halichoeres_hortulanus | n$mpanon-mpa | 0.0278040 |
| 72 | halichoeres_hortulanus | n$northsouth | 0.0105687 |
| 82 | halichoeres_hortulanus | n\(distance_seagrass:log(n\)size_mangroves) | 0.0066500 |
| 37 | mulloidichthys_flavolineatus | n$distance_seagrass | 0.0166240 |
| 38 | mulloidichthys_flavolineatus | n$distance_mangroves | 0.0020101 |
| 39 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0002878 |
| 40 | parupeneus_barberinoides | n$distance_seagrass | 0.0001620 |
| 411 | scolopsis_ciliata | n$depth10m | 0.0207127 |
| 421 | scolopsis_ciliata | n\(distance_seagrass:n\)depth10m | 0.0084546 |
log(size_seagrass) & log(distance_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$north
}
else{
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC fistularia_commersonii : 203.808555954373"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus : 633.195660521307"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata : 843.933588478539"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | log(n$size_seagrass) | 0.0179729 |
| 2 | abudefduf_sexfasciatus | log(n$distance_mangroves) | 0.0266833 |
| 21 | abudefduf_vaigiensis | n$distance_seagrass | 0.0000034 |
| 3 | abudefduf_vaigiensis | log(n$size_seagrass) | 0.0002633 |
| 4 | abudefduf_vaigiensis | n$size_mangroves | 0.0009244 |
| 5 | abudefduf_vaigiensis | log(n$distance_mangroves) | 0.0019656 |
| 6 | abudefduf_vaigiensis | n$depth10m | 0.0002026 |
| 7 | abudefduf_vaigiensis | n$northsouth | 0.0007809 |
| 8 | abudefduf_vaigiensis | n\(distance_seagrass:log(n\)size_seagrass) | 0.0002590 |
| 9 | abudefduf_vaigiensis | n\(distance_seagrass:n\)depth10m | 0.0000013 |
| 10 | abudefduf_vaigiensis | log(n\(size_seagrass):n\)depth10m | 0.0016766 |
| 12 | cheilio_inermis | n$depth10m | 0.0057399 |
| 13 | cheilodipterus_quinquelineatus | n$distance_seagrass | 0.0004843 |
| 14 | cheilodipterus_quinquelineatus | log(n$size_seagrass) | 0.0000000 |
| 15 | cheilodipterus_quinquelineatus | n$size_mangroves | 0.0000000 |
| 16 | cheilodipterus_quinquelineatus | log(n$distance_mangroves) | 0.0000000 |
| 17 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0000000 |
| 18 | cheilodipterus_quinquelineatus | n$depth10m | 0.0033293 |
| 19 | cheilodipterus_quinquelineatus | n$northsouth | 0.0000000 |
| 20 | cheilodipterus_quinquelineatus | n\(distance_seagrass:log(n\)size_seagrass) | 0.0000000 |
| 211 | cheilodipterus_quinquelineatus | log(n\(size_seagrass):n\)depth10m | 0.0054286 |
| 22 | cheilodipterus_quinquelineatus | n\(size_mangroves:n\)depth10m | 0.0000155 |
| 23 | cheilodipterus_quinquelineatus | log(n\(distance_mangroves):n\)depth10m | 0.0008221 |
| 24 | cheilodipterus_quinquelineatus | n\(mpanon-mpa:n\)depth10m | 0.0000943 |
| 25 | cheilodipterus_quinquelineatus | n\(depth10m:n\)northsouth | 0.0000343 |
| 26 | fistularia_commersonii | log(n$size_seagrass) | 0.0411079 |
| 27 | fistularia_commersonii | log(n$distance_mangroves) | 0.0152579 |
| 28 | halichoeres_hortulanus | n$distance_seagrass | 0.0003595 |
| 29 | halichoeres_hortulanus | log(n$size_seagrass) | 0.0093301 |
| 30 | halichoeres_hortulanus | n$size_mangroves | 0.0323553 |
| 31 | halichoeres_hortulanus | log(n$distance_mangroves) | 0.0103440 |
| 32 | halichoeres_hortulanus | n$mpanon-mpa | 0.0013058 |
| 33 | halichoeres_hortulanus | n\(distance_seagrass:log(n\)size_seagrass) | 0.0042878 |
| 34 | mulloidichthys_flavolineatus | n$distance_seagrass | 0.0078900 |
| 35 | mulloidichthys_flavolineatus | log(n$size_seagrass) | 0.0005353 |
| 36 | mulloidichthys_flavolineatus | log(n$distance_mangroves) | 0.0023050 |
| 37 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0226706 |
| 210 | parupeneus_barberinus | n\(distance_seagrass:n\)size_mangroves | 0.0463536 |
| 39 | parupeneus_barberinoides | n$distance_seagrass | 0.0001312 |
| 40 | scolopsis_bilineata | n$depth10m | 0.0332285 |
| 41 | scolopsis_bilineata | n\(distance_seagrass:n\)size_mangroves:n$depth10m | 0.0234958 |
| 42 | scolopsis_ciliata | n$depth10m | 0.0207127 |
| 43 | scolopsis_ciliata | n\(distance_seagrass:n\)depth10m | 0.0084546 |
log(size_seagrass), log(distance_mangroves) & log(size_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$north
}
else{
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC fistularia_commersonii : 203.808555954373"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus : 633.195660521307"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | log(n$size_seagrass) | 0.0344264 |
| 2 | abudefduf_vaigiensis | n$distance_seagrass | 0.0000049 |
| 3 | abudefduf_vaigiensis | log(n$size_seagrass) | 0.0002024 |
| 4 | abudefduf_vaigiensis | log(n$size_mangroves) | 0.0009244 |
| 5 | abudefduf_vaigiensis | log(n$distance_mangroves) | 0.0020795 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0115530 |
| 7 | abudefduf_vaigiensis | n$depth10m | 0.0002026 |
| 8 | abudefduf_vaigiensis | n$northsouth | 0.0007416 |
| 9 | abudefduf_vaigiensis | n\(distance_seagrass:log(n\)size_seagrass) | 0.0000672 |
| 10 | abudefduf_vaigiensis | n\(distance_seagrass:n\)depth10m | 0.0000013 |
| 11 | abudefduf_vaigiensis | log(n\(size_seagrass):n\)depth10m | 0.0016766 |
| 12 | cheilio_inermis | n$depth10m | 0.0057399 |
| 21 | cheilodipterus_quinquelineatus | n$distance_seagrass | 0.0000001 |
| 31 | cheilodipterus_quinquelineatus | log(n$size_seagrass) | 0.0000000 |
| 41 | cheilodipterus_quinquelineatus | log(n$size_mangroves) | 0.0000000 |
| 51 | cheilodipterus_quinquelineatus | log(n$distance_mangroves) | 0.0000000 |
| 61 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0000000 |
| 71 | cheilodipterus_quinquelineatus | n$depth10m | 0.0000137 |
| 81 | cheilodipterus_quinquelineatus | n$northsouth | 0.0000000 |
| 91 | cheilodipterus_quinquelineatus | n\(distance_seagrass:log(n\)size_seagrass) | 0.0000000 |
| 101 | cheilodipterus_quinquelineatus | log(n\(size_seagrass):n\)depth10m | 0.0011066 |
| 111 | cheilodipterus_quinquelineatus | log(n\(size_mangroves):n\)depth10m | 0.0000155 |
| 121 | cheilodipterus_quinquelineatus | log(n\(distance_mangroves):n\)depth10m | 0.0001081 |
| 13 | cheilodipterus_quinquelineatus | n\(mpanon-mpa:n\)depth10m | 0.0000085 |
| 14 | cheilodipterus_quinquelineatus | n\(depth10m:n\)northsouth | 0.0000190 |
| 15 | cheilodipterus_quinquelineatus | n\(distance_seagrass:log(n\)size_seagrass):n$depth10m | 0.0023942 |
| 27 | fistularia_commersonii | log(n$distance_mangroves) | 0.0146087 |
| 28 | halichoeres_hortulanus | log(n$size_seagrass) | 0.0093844 |
| 29 | halichoeres_hortulanus | log(n$size_mangroves) | 0.0327519 |
| 30 | halichoeres_hortulanus | log(n$distance_mangroves) | 0.0099240 |
| 311 | halichoeres_hortulanus | n$mpanon-mpa | 0.0013420 |
| 32 | halichoeres_hortulanus | n\(distance_seagrass:log(n\)size_seagrass) | 0.0035987 |
| 33 | mulloidichthys_flavolineatus | n$distance_seagrass | 0.0071981 |
| 34 | mulloidichthys_flavolineatus | log(n$size_seagrass) | 0.0006837 |
| 35 | mulloidichthys_flavolineatus | log(n$distance_mangroves) | 0.0020101 |
| 36 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0219319 |
| 37 | parupeneus_barberinus | n$northsouth | 0.0467278 |
| 38 | parupeneus_barberinoides | n$distance_seagrass | 0.0001620 |
| 39 | scolopsis_ciliata | n$depth10m | 0.0207127 |
| 40 | scolopsis_ciliata | n\(distance_seagrass:n\)depth10m | 0.0084546 |
log(distance_seagrass) & log(distance_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$north
}
else{
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus : 633.195660521307"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma : 37.6524153062094"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata : 843.933588478539"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | n$size_seagrass | 0.0392477 |
| 2 | abudefduf_sexfasciatus | n$size_mangroves | 0.0497482 |
| 3 | abudefduf_sexfasciatus | log(n\(distance_seagrass):n\)size_seagrass | 0.0059002 |
| 21 | abudefduf_vaigiensis | log(n$distance_seagrass) | 0.0002270 |
| 31 | abudefduf_vaigiensis | n$size_seagrass | 0.0002630 |
| 4 | abudefduf_vaigiensis | n$size_mangroves | 0.0003707 |
| 5 | abudefduf_vaigiensis | log(n$distance_mangroves) | 0.0021998 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0014699 |
| 7 | abudefduf_vaigiensis | n$depth10m | 0.0000014 |
| 8 | abudefduf_vaigiensis | n$northsouth | 0.0022516 |
| 9 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)size_seagrass | 0.0008789 |
| 10 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)depth10m | 0.0000186 |
| 11 | abudefduf_vaigiensis | n\(size_seagrass:n\)depth10m | 0.0016766 |
| 14 | cheilio_inermis | n$depth10m | 0.0057399 |
| 22 | cheilodipterus_quinquelineatus | log(n$distance_seagrass) | 0.0004298 |
| 32 | cheilodipterus_quinquelineatus | n$size_seagrass | 0.0000000 |
| 41 | cheilodipterus_quinquelineatus | n$size_mangroves | 0.0022527 |
| 51 | cheilodipterus_quinquelineatus | log(n$distance_mangroves) | 0.0003456 |
| 61 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)size_seagrass | 0.0000000 |
| 71 | cheilodipterus_quinquelineatus | n\(size_mangroves:n\)depth10m | 0.0112231 |
| 81 | cheilodipterus_quinquelineatus | n\(mpanon-mpa:n\)depth10m | 0.0094656 |
| 91 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)size_seagrass:n$depth10m | 0.0103284 |
| 23 | halichoeres_hortulanus | log(n$distance_seagrass) | 0.0288915 |
| 33 | halichoeres_hortulanus | n$size_mangroves | 0.0056661 |
| 42 | halichoeres_hortulanus | n$mpanon-mpa | 0.0012214 |
| 52 | halichoeres_hortulanus | n$northsouth | 0.0006473 |
| 62 | halichoeres_hortulanus | log(n\(distance_seagrass):n\)size_mangroves | 0.0065564 |
| 28 | mulloidichthys_flavolineatus | log(n$distance_seagrass) | 0.0007029 |
| 29 | mulloidichthys_flavolineatus | log(n$distance_mangroves) | 0.0074226 |
| 30 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0011043 |
| 24 | parupeneus_barberinus | log(n$distance_seagrass) | 0.0088265 |
| 34 | parupeneus_barberinus | n$size_seagrass | 0.0047117 |
| 43 | parupeneus_barberinus | n$size_mangroves | 0.0218534 |
| 53 | parupeneus_barberinus | log(n$distance_mangroves) | 0.0189358 |
| 63 | parupeneus_barberinus | n$northsouth | 0.0061157 |
| 72 | parupeneus_barberinus | log(n\(distance_seagrass):n\)size_seagrass | 0.0042743 |
| 82 | parupeneus_barberinus | log(n\(distance_seagrass):n\)size_mangroves | 0.0182459 |
| 25 | lutjanus_fulviflamma | n$size_seagrass | 0.0487377 |
| 39 | parupeneus_barberinoides | log(n$distance_seagrass) | 0.0001737 |
| 40 | scolopsis_bilineata | n$depth10m | 0.0440425 |
| 411 | scolopsis_bilineata | n\(size_seagrass:n\)depth10m | 0.0121483 |
| 421 | scolopsis_bilineata | log(n\(distance_mangroves):n\)depth10m | 0.0291154 |
| 431 | scolopsis_bilineata | log(n\(distance_seagrass):n\)size_seagrass:n$depth10m | 0.0366272 |
| 44 | scolopsis_ciliata | n$depth10m | 0.0001206 |
| 45 | scolopsis_ciliata | log(n\(distance_seagrass):n\)depth10m | 0.0001718 |
log(distance_seagrass) & log(size_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$north
}
else{
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028389"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus : 633.195660521307"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma : 37.6524153062094"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata : 843.933588478539"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | n$size_seagrass | 0.0463933 |
| 2 | abudefduf_vaigiensis | log(n$distance_seagrass) | 0.0002138 |
| 3 | abudefduf_vaigiensis | n$size_seagrass | 0.0014430 |
| 4 | abudefduf_vaigiensis | log(n$size_mangroves) | 0.0001557 |
| 5 | abudefduf_vaigiensis | n$distance_mangroves | 0.0020967 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0013417 |
| 7 | abudefduf_vaigiensis | n$depth10m | 0.0000014 |
| 8 | abudefduf_vaigiensis | n$northsouth | 0.0012362 |
| 9 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)size_seagrass | 0.0012096 |
| 10 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)depth10m | 0.0000186 |
| 11 | abudefduf_vaigiensis | n\(size_seagrass:n\)depth10m | 0.0016766 |
| 12 | cheilio_inermis | n$depth10m | 0.0057399 |
| 21 | cheilodipterus_quinquelineatus | log(n$distance_seagrass) | 0.0008526 |
| 31 | cheilodipterus_quinquelineatus | n$size_seagrass | 0.0000178 |
| 41 | cheilodipterus_quinquelineatus | log(n$size_mangroves) | 0.0017893 |
| 51 | cheilodipterus_quinquelineatus | n$distance_mangroves | 0.0003605 |
| 61 | cheilodipterus_quinquelineatus | n$depth10m | 0.0055779 |
| 71 | cheilodipterus_quinquelineatus | n$northsouth | 0.0000440 |
| 81 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)size_seagrass | 0.0039681 |
| 91 | cheilodipterus_quinquelineatus | n\(size_seagrass:n\)depth10m | 0.0026726 |
| 101 | cheilodipterus_quinquelineatus | log(n\(size_mangroves):n\)depth10m | 0.0137667 |
| 111 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)size_seagrass:n$depth10m | 0.0104406 |
| 22 | halichoeres_hortulanus | log(n$distance_seagrass) | 0.0094783 |
| 32 | halichoeres_hortulanus | log(n$size_mangroves) | 0.0078039 |
| 42 | halichoeres_hortulanus | n$mpanon-mpa | 0.0007428 |
| 52 | halichoeres_hortulanus | n$northsouth | 0.0002184 |
| 62 | halichoeres_hortulanus | log(n\(distance_seagrass):n\)size_seagrass | 0.0349378 |
| 72 | halichoeres_hortulanus | log(n\(distance_seagrass):log(n\)size_mangroves) | 0.0081729 |
| 29 | mulloidichthys_flavolineatus | log(n$distance_seagrass) | 0.0265570 |
| 30 | mulloidichthys_flavolineatus | n$distance_mangroves | 0.0090560 |
| 311 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0171668 |
| 321 | parupeneus_barberinus | n$size_seagrass | 0.0413453 |
| 33 | parupeneus_barberinus | n$distance_mangroves | 0.0164943 |
| 23 | lutjanus_fulviflamma | n$size_seagrass | 0.0487377 |
| 35 | parupeneus_barberinoides | log(n$distance_seagrass) | 0.0002570 |
| 36 | scolopsis_bilineata | n\(distance_mangroves:n\)depth10m | 0.0260803 |
| 37 | scolopsis_ciliata | n$depth10m | 0.0001206 |
| 38 | scolopsis_ciliata | log(n\(distance_seagrass):n\)depth10m | 0.0001718 |
log(distance_mangroves) & log(size_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$north
}
else{
formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | n\(distance_seagrass:n\)size_seagrass | 0.0072771 |
| 2 | abudefduf_vaigiensis | n$distance_seagrass | 0.0004432 |
| 3 | abudefduf_vaigiensis | n$size_seagrass | 0.0007703 |
| 4 | abudefduf_vaigiensis | log(n$size_mangroves) | 0.0004442 |
| 5 | abudefduf_vaigiensis | log(n$distance_mangroves) | 0.0010258 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0008888 |
| 7 | abudefduf_vaigiensis | n$northsouth | 0.0005413 |
| 8 | abudefduf_vaigiensis | n\(distance_seagrass:n\)size_seagrass | 0.0008599 |
| 9 | abudefduf_vaigiensis | n\(distance_seagrass:n\)depth10m | 0.0000186 |
| 10 | abudefduf_vaigiensis | n\(size_seagrass:n\)depth10m | 0.0016766 |
| 11 | cheilio_inermis | n$depth10m | 0.0057399 |
| 21 | cheilodipterus_quinquelineatus | n$distance_seagrass | 0.0000543 |
| 31 | cheilodipterus_quinquelineatus | n$size_seagrass | 0.0000000 |
| 41 | cheilodipterus_quinquelineatus | log(n$size_mangroves) | 0.0000797 |
| 51 | cheilodipterus_quinquelineatus | log(n$distance_mangroves) | 0.0000564 |
| 61 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0057188 |
| 71 | cheilodipterus_quinquelineatus | n$northsouth | 0.0000348 |
| 81 | cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)size_seagrass | 0.0000000 |
| 91 | cheilodipterus_quinquelineatus | n\(size_seagrass:n\)depth10m | 0.0115788 |
| 101 | cheilodipterus_quinquelineatus | n\(mpanon-mpa:n\)depth10m | 0.0249994 |
| 111 | cheilodipterus_quinquelineatus | n\(distance_seagrass:n\)size_seagrass:n$depth10m | 0.0006490 |
| 22 | mulloidichthys_flavolineatus | n$distance_seagrass | 0.0000959 |
| 23 | mulloidichthys_flavolineatus | n$size_seagrass | 0.0004580 |
| 24 | mulloidichthys_flavolineatus | log(n$distance_mangroves) | 0.0001436 |
| 25 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0002494 |
| 26 | parupeneus_barberinoides | n$distance_seagrass | 0.0010270 |
| 27 | scolopsis_ciliata | n$depth10m | 0.0078945 |
| 28 | scolopsis_ciliata | n\(distance_seagrass:n\)depth10m | 0.0001718 |
log(distance_seagrass), log(distance_mangroves) & log(size_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$north
}
else{
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus : 621.430719922767"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028389"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus : 633.195660521307"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma : 37.6524153062094"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata : 843.933588478539"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | n$size_seagrass | 0.0404488 |
| 2 | abudefduf_sexfasciatus | log(n$size_mangroves) | 0.0497482 |
| 3 | abudefduf_sexfasciatus | log(n\(distance_seagrass):n\)size_seagrass | 0.0058995 |
| 21 | abudefduf_vaigiensis | log(n$distance_seagrass) | 0.0002275 |
| 31 | abudefduf_vaigiensis | n$size_seagrass | 0.0003546 |
| 4 | abudefduf_vaigiensis | log(n$size_mangroves) | 0.0003707 |
| 5 | abudefduf_vaigiensis | log(n$distance_mangroves) | 0.0020967 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0014231 |
| 7 | abudefduf_vaigiensis | n$depth10m | 0.0000014 |
| 8 | abudefduf_vaigiensis | n$northsouth | 0.0015942 |
| 9 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)size_seagrass | 0.0008776 |
| 10 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)depth10m | 0.0000186 |
| 11 | abudefduf_vaigiensis | n\(size_seagrass:n\)depth10m | 0.0016766 |
| 14 | cheilio_inermis | n$depth10m | 0.0057399 |
| 15 | cheilodipterus_quinquelineatus | log(n$distance_seagrass) | 0.0004282 |
| 16 | cheilodipterus_quinquelineatus | n$size_seagrass | 0.0000000 |
| 17 | cheilodipterus_quinquelineatus | log(n$size_mangroves) | 0.0022527 |
| 18 | cheilodipterus_quinquelineatus | log(n$distance_mangroves) | 0.0003605 |
| 19 | cheilodipterus_quinquelineatus | n$depth10m | 0.0043554 |
| 20 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)size_seagrass | 0.0000000 |
| 211 | cheilodipterus_quinquelineatus | log(n\(size_mangroves):n\)depth10m | 0.0112231 |
| 22 | cheilodipterus_quinquelineatus | n\(mpanon-mpa:n\)depth10m | 0.0094756 |
| 23 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):n\)size_seagrass:n$depth10m | 0.0101167 |
| 24 | halichoeres_hortulanus | log(n$distance_seagrass) | 0.0073088 |
| 32 | halichoeres_hortulanus | log(n$size_mangroves) | 0.0048756 |
| 41 | halichoeres_hortulanus | n$mpanon-mpa | 0.0009862 |
| 51 | halichoeres_hortulanus | n$northsouth | 0.0002722 |
| 61 | halichoeres_hortulanus | log(n\(distance_seagrass):log(n\)size_mangroves) | 0.0060820 |
| 29 | mulloidichthys_flavolineatus | log(n$distance_seagrass) | 0.0005879 |
| 30 | mulloidichthys_flavolineatus | log(n$distance_mangroves) | 0.0090560 |
| 311 | mulloidichthys_flavolineatus | n$mpanon-mpa | 0.0011129 |
| 25 | parupeneus_barberinus | log(n$distance_seagrass) | 0.0166298 |
| 33 | parupeneus_barberinus | n$size_seagrass | 0.0038628 |
| 42 | parupeneus_barberinus | log(n$size_mangroves) | 0.0316462 |
| 52 | parupeneus_barberinus | log(n$distance_mangroves) | 0.0164943 |
| 62 | parupeneus_barberinus | n$mpanon-mpa | 0.0484746 |
| 71 | parupeneus_barberinus | n$northsouth | 0.0111891 |
| 81 | parupeneus_barberinus | log(n\(distance_seagrass):n\)size_seagrass | 0.0035053 |
| 91 | parupeneus_barberinus | log(n\(distance_seagrass):log(n\)size_mangroves) | 0.0197465 |
| 26 | lutjanus_fulviflamma | n$size_seagrass | 0.0487377 |
| 411 | parupeneus_barberinoides | log(n$distance_seagrass) | 0.0002570 |
| 421 | scolopsis_bilineata | n\(size_seagrass:n\)depth10m | 0.0083236 |
| 43 | scolopsis_bilineata | log(n\(distance_mangroves):n\)depth10m | 0.0260803 |
| 44 | scolopsis_bilineata | log(n\(distance_seagrass):n\)size_seagrass:n$depth10m | 0.0292520 |
| 45 | scolopsis_ciliata | n$depth10m | 0.0001206 |
| 46 | scolopsis_ciliata | log(n\(distance_seagrass):n\)depth10m | 0.0001718 |
log(size_seagrass), log(distance_seagrass), log(distance_mangroves) & log(size_mangroves)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$north
}
else{
formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="poisson"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus : 126.58813996457"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis : 761.404862459547"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis : 137.853053579635"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus : 1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus : 98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma : 37.6524153062094"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides : 166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata : 456.994991112409"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
| species | coefficient | pvalue | |
|---|---|---|---|
| 1 | abudefduf_sexfasciatus | log(n$size_seagrass) | 0.0493289 |
| 2 | abudefduf_sexfasciatus | log(n$distance_mangroves) | 0.0389140 |
| 3 | abudefduf_sexfasciatus | n$northsouth | 0.0452523 |
| 21 | abudefduf_vaigiensis | log(n$distance_seagrass) | 0.0000294 |
| 31 | abudefduf_vaigiensis | log(n$size_seagrass) | 0.0007564 |
| 4 | abudefduf_vaigiensis | log(n$size_mangroves) | 0.0010255 |
| 5 | abudefduf_vaigiensis | log(n$distance_mangroves) | 0.0009744 |
| 6 | abudefduf_vaigiensis | n$mpanon-mpa | 0.0005113 |
| 7 | abudefduf_vaigiensis | n$depth10m | 0.0000008 |
| 8 | abudefduf_vaigiensis | n$northsouth | 0.0012526 |
| 9 | abudefduf_vaigiensis | log(n\(distance_seagrass):log(n\)size_seagrass) | 0.0007965 |
| 10 | abudefduf_vaigiensis | log(n\(distance_seagrass):n\)depth10m | 0.0000013 |
| 11 | abudefduf_vaigiensis | log(n\(size_seagrass):n\)depth10m | 0.0016766 |
| 14 | cheilio_inermis | n$depth10m | 0.0057399 |
| 22 | cheilodipterus_quinquelineatus | log(n$distance_seagrass) | 0.0027203 |
| 32 | cheilodipterus_quinquelineatus | log(n$size_seagrass) | 0.0000000 |
| 41 | cheilodipterus_quinquelineatus | log(n$size_mangroves) | 0.0000000 |
| 51 | cheilodipterus_quinquelineatus | log(n$distance_mangroves) | 0.0000000 |
| 61 | cheilodipterus_quinquelineatus | n$mpanon-mpa | 0.0172170 |
| 71 | cheilodipterus_quinquelineatus | n$depth10m | 0.0018268 |
| 81 | cheilodipterus_quinquelineatus | n$northsouth | 0.0000000 |
| 91 | cheilodipterus_quinquelineatus | log(n\(distance_seagrass):log(n\)size_seagrass) | 0.0000000 |
| 101 | cheilodipterus_quinquelineatus | log(n\(size_mangroves):n\)depth10m | 0.0096215 |
| 111 | cheilodipterus_quinquelineatus | log(n\(distance_mangroves):n\)depth10m | 0.0490026 |
| 12 | cheilodipterus_quinquelineatus | n\(mpanon-mpa:n\)depth10m | 0.0050617 |
| 26 | mulloidichthys_flavolineatus | log(n$distance_seagrass) | 0.0377532 |
| 27 | mulloidichthys_flavolineatus | log(n$distance_mangroves) | 0.0131520 |
| 28 | lutjanus_fulviflamma | log(n$size_seagrass) | 0.0487377 |
| 29 | parupeneus_barberinoides | log(n$distance_seagrass) | 0.0001427 |
| 30 | scolopsis_ciliata | n$depth10m | 0.0005535 |
| 311 | scolopsis_ciliata | log(n\(distance_seagrass):n\)depth10m | 0.0084546 |
log(abundance)
glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())
speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
sp <- df.species_all[spnum,]
print(sp$colname)
n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
if(nrow(n)<5){
print("Less than 5 rows remaining in subset")
next
}
if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
formula <- log(n[,c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$north
}
else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
formula <- log(n[,c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$depth * n$north
}
else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
formula <- log(n[,c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$north
}
else{
formula <- log(n[,c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north
}
print(paste("Formula",sp$colname,":",as.character(formula)))
res <- NULL
tryCatch(
res <- glm(formula, family="gaussian"),
error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
)
if(is.null(res)){
next
}
coefs <- as.data.frame(coef(summary(res)))
coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
if(nrow(coefs)==0){
next
}
glm_tab <- rbind(glm_tab, coefs)
print(paste("AIC",sp$colname,": ",summary(res)$aic))
par(mfrow=c(1,2))
plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
title(sp$colname)
tryCatch(
lines(smooth.spline(fitted(res), residuals(res))),
error=function(e){} )
qqnorm(res$residuals)
qqline(res$residuals)
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)